/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.gob.fonafe.dao.impl.stored;
import java.sql.Types;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import oracle.jdbc.OracleTypes;
import org.springframework.jdbc.core.SqlOutParameter;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.core.support.SqlLobValue;
import org.springframework.jdbc.object.StoredProcedure;
import pe.gob.fonafe.domain.InmuebleBean;
import pe.gob.fonafe.domain.MuebleBean;
/**
 *
 * @author Irving
 */
public class ActualizarMuebleSP extends StoredProcedure{
    
    private static final String PROC_PARAM ="USERGLC.P_ACTUALIZA_MUEBLE";
    
    
    public ActualizarMuebleSP(DataSource ds) {
        super(ds,PROC_PARAM);

        declareParameter(new SqlParameter("P_ID_MUEBLE", Types.NUMERIC));
        declareParameter(new SqlParameter("P_NOMBRE", Types.VARCHAR));
        declareParameter(new SqlParameter("P_DESCRIPCION", Types.VARCHAR));
        declareParameter(new SqlParameter("P_TIPO_MONEDA", Types.VARCHAR));
        declareParameter(new SqlParameter("P_PRECIO", Types.NUMERIC));
        declareParameter(new SqlParameter("P_TIPOCONTRATO", Types.VARCHAR));
        declareParameter(new SqlParameter("P_PLANOUBICACION", OracleTypes.BLOB));
        declareParameter(new SqlParameter("P_DIRECCION", Types.VARCHAR));
        declareParameter(new SqlParameter("P_FOTO_PRINCIPAL", OracleTypes.BLOB));
        declareParameter(new SqlParameter("P_FECHA_VENCIMIENTO", Types.DATE));
        declareParameter(new SqlParameter("P_TIPO_MUEBLE", Types.NUMERIC));
        declareParameter(new SqlParameter("P_TB_UBIGEO_ID_UBIGEO", Types.NUMERIC));
        declareParameter(new SqlParameter("P_TB_USUARIO_ID_USUARIO", Types.NUMERIC));
        declareParameter(new SqlParameter("P_ESTADO", Types.VARCHAR));
        declareParameter(new SqlOutParameter("V_MENSAJE", Types.VARCHAR));
        declareParameter(new SqlOutParameter("V_EXITO", Types.VARCHAR));
        compile();
        
    }

    public Map execute(MuebleBean bean){
        Map inputs = new HashMap();
        inputs.put("P_ID_MUEBLE", bean.getId_mueble());
        inputs.put("P_NOMBRE", bean.getNombre());
        inputs.put("P_DESCRIPCION", bean.getDescripcion());
        inputs.put("P_TIPO_MONEDA", bean.getTipo_moneda());
        inputs.put("P_PRECIO", bean.getPrecio());
        inputs.put("P_TIPOCONTRATO", bean.getTipoContrato());
        inputs.put("P_PLANOUBICACION", new SqlLobValue(bean.getPlanoUbicacion()));
        inputs.put("P_DIRECCION", bean.getDireccion());
        inputs.put("P_FOTO_PRINCIPAL",new SqlLobValue(bean.getFoto_principal()));
        inputs.put("P_FECHA_VENCIMIENTO", bean.getFecha_vencimiento());
        inputs.put("P_TIPO_MUEBLE", bean.getTipo_mueble());
        inputs.put("P_TB_UBIGEO_ID_UBIGEO", bean.getTb_Ubigeo_id_ubigeo());
        inputs.put("P_TB_USUARIO_ID_USUARIO", bean.getTb_Usuario_id_usuario());
        inputs.put("P_ESTADO", bean.getEstadoBien());
        return super.execute(inputs);
    }
}
